package com.googlecode.classgrep.grep.annotated;

import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.googlecode.classgrep.grep.annotated.internal.ClassGrepInternal;
import com.googlecode.classgrep.info.ClassInfo;

public class ClassGrep implements ClassGrepInternal {

	private final Map<String, List<ClassInfo>> annotated = new HashMap<String, List<ClassInfo>>();
	
    private final Map<String, ClassInfo> classInfos = new LinkedHashMap<String, ClassInfo>();
    
    private final List<String> classesNotLoaded = new ArrayList<String>();
	
	
	public Map<String, List<ClassInfo>> getAnnotatedClassMap() {
		return annotated;
	}

	public List<String> getNotLoadedClass() {
		return classesNotLoaded;
	}

	public List<ClassInfo> findAnnotatedClasses(Class<? extends Annotation> annotation) {
		return annotated.get(annotation.getName());
	}
	
	public Map<String, ClassInfo> getClassInfos(){
		return classInfos;
	}

}
